package com.runa.protocol.enums;

public class S7Error {

    public enum S7ErrorClass {
        NO_ERROR((byte) 0),
        APP_REL_ERROR((byte) 0x81),
        OBJ_DEF_ERROR((byte) 0x82),
        NO_RES_ALV_ERROR((byte) 0x83),
        SER_PRO_ERROR((byte) 0x84),
        SUPPLIES_ERROR((byte) 0x85),
        ACCESS_ERROR((byte) 0x87);

        private byte code;

        S7ErrorClass(byte code) {
            this.code = code;
        }

        public static S7ErrorClass valueOf(byte code) {
            for (S7ErrorClass type : S7ErrorClass.values()) {
                if (type.code == code) {
                    return type;
                }
            }
            return null;
        }
    }

    public enum S7ErrorCode {
        NO_ERROR((byte) 0);

        private byte code;

        S7ErrorCode(byte code) {
            this.code = code;
        }

        public static S7ErrorCode valueOf(byte code) {
            for (S7ErrorCode type : S7ErrorCode.values()) {
                if (type.code == code) {
                    return type;
                }
            }
            return null;
        }
    }

}
